// Disruptor Weapon

#include "cg_local.h"
#include "fx_local.h"
/*
 ---------------------------
 FX_DisruptorMainShot
 ---------------------------
 */
 static vec3_t WHITE={1.0f,1.0f,1.0f};
 
 void FX_DisruptorMainShot( vec3_t start, vec3_t end )
 {
 
         /*trap_FX_AddLine( start, end, 0.1f, 6.0f, 0.0f, 
                                                         1.0f, 0.0f, 0.0f,
                                                         WHITE, WHITE, 0.0f,
                                                         150, trap_R_RegisterShader( "gfx/effects/redLine" ), 
                                                         FX_SIZE_LINEAR | FX_ALPHA_LINEAR );
 
       VectorSubtract( end, start, dir );
       len = VectorNormalize( dir );*/
//	   trap_FX_PlayEffectID( cgs.effects.bowcasterShotEffect, cent->lerpOrigin, forward, -1, -1 );
 }
 
 
 /*
 ---------------------------
 FX_DisruptorAltShot
 ---------------------------
 */
 void FX_DisruptorAltShot( vec3_t start, vec3_t end, qboolean fullCharge )
 {
         trap_FX_AddLine( start, end, 0.1f, 10.0f, 0.0f, 
                                                         1.0f, 0.0f, 0.0f,
                                                         WHITE, WHITE, 0.0f,
                                                         175, trap_R_RegisterShader( "gfx/effects/redLine" ), 
                                                         FX_SIZE_LINEAR | FX_ALPHA_LINEAR );
 
         if ( fullCharge )
         {
                 vec3_t  YELLER={0.8f,0.7f,0.0f};
 
                 // add some beef
                 trap_FX_AddLine( start, end, 0.1f, 7.0f, 0.0f, 
                                                         1.0f, 0.0f, 0.0f,
                                                         YELLER, YELLER, 0.0f,
                                                         150, trap_R_RegisterShader( "gfx/misc/whiteline2" ), 
                                                         FX_SIZE_LINEAR | FX_ALPHA_LINEAR );
         }
 }
 
 
 /*
 ---------------------------
 FX_DisruptorAltMiss
 ---------------------------
 */
 #define FX_ALPHA_WAVE           0x00000008
 
 void FX_DisruptorAltMiss( vec3_t origin, vec3_t normal )
 {
         vec3_t pos, c1, c2;
         addbezierArgStruct_t b;
 
         VectorMA( origin, 4.0f, normal, c1 );
         VectorCopy( c1, c2 );
         c1[2] += 4;
         c2[2] += 12;
         
         VectorAdd( origin, normal, pos );
         pos[2] += 28;
 
         
         /*FX_AddBezier( origin, pos, c1, vec3_origin, c2, vec3_origin, 6.0f, 6.0f, 0.0f, 0.0f, 0.2f, 0.5f,
         WHITE, WHITE, 0.0f, 4000, trap_R_RegisterShader( "gfx/effects/smokeTrail" ), FX_ALPHA_WAVE );*/
         
 
         VectorCopy(origin, b.start);
         VectorCopy(pos, b.end);
         VectorCopy(c1, b.control1);
         VectorCopy(vec3_origin, b.control1Vel);
         VectorCopy(c2, b.control2);
         VectorCopy(vec3_origin, b.control2Vel);
 
         b.size1 = 6.0f;
         b.size2 = 6.0f;
         b.sizeParm = 0.0f;
         b.alpha1 = 0.0f;
         b.alpha2 = 0.2f;
         b.alphaParm = 0.5f;
         
         VectorCopy(WHITE, b.sRGB);
         VectorCopy(WHITE, b.eRGB);
 
         b.rgbParm = 0.0f;
         b.killTime = 4000;
         b.shader = trap_R_RegisterShader( "gfx/effects/smokeTrail" );
         b.flags = FX_ALPHA_WAVE;
 
         trap_FX_AddBezier(&b);
 
         trap_FX_PlayEffectID( cgs.effects.disruptorAltMissEffect, origin, normal, -1, -1 );
}

/*
---------------------------
FX_DisruptorAltHit
---------------------------
*/

void FX_DisruptorAltHit( vec3_t origin, vec3_t normal )
{
	trap_FX_PlayEffectID( cgs.effects.disruptorAltHitEffect, origin, normal, -1, -1 );
}



/*
---------------------------
FX_DisruptorHitWall
---------------------------
*/

void FX_DisruptorHitWall( vec3_t origin, vec3_t normal )
{
	trap_FX_PlayEffectID( cgs.effects.disruptorWallImpactEffect, origin, normal, -1, -1 );
}

/*
---------------------------
FX_DisruptorHitPlayer
---------------------------
*/

void FX_DisruptorHitPlayer( vec3_t origin, vec3_t normal, qboolean humanoid )
{
	trap_FX_PlayEffectID( cgs.effects.disruptorFleshImpactEffect, origin, normal, -1, -1 );
}
